package com.squirrel.michale;

/**
 * @author guanhao 观浩
 * @version 1.0.0.0
 * @createTime 2023/2/11 8:01 AM
 * @company Michale Squirrel
 * @link
 * @description
 *
 * 给你一个正整数数组 values，其中 values[i] 表示第 i 个观光景点的评分，并且两个景点 i 和 j 之间的 距离 为 j - i。
 *
 * 一对景点（i < j）组成的观光组合的得分为 values[i] + values[j] + i - j ，也就是景点的评分之和 减去 它们两者之间的距离。
 *
 * 返回一对观光景点能取得的最高分。
 *
 *
 *
 * 示例 1：
 *
 * 输入：values = [8,1,5,2,6]
 * 输出：11
 * 解释：i = 0, j = 2, values[i] + values[j] + i - j = 8 + 5 + 0 - 2 = 11
 * 示例 2：
 *
 * 输入：values = [1,2]
 * 输出：2
 */
public class LeetCode1014 {

    public int maxScoreSightseeingPair(int[] values) {
        int maxLeft = values[0];
        int max = 0;
        for (int j = 1; j < values.length; j++) {
            max = Math.max(max, maxLeft+ values[j]-j);
            maxLeft = Math.max(maxLeft, values[j] + j);
        }
        return max;
    }


    public int maxScoreSightseeingPair2(int[] values) {
        int max = 0;
        for (int i = 0; i < values.length; i++) {
            for (int j = i+1; j < values.length; j++) {
                int score = values[i] + values[j] + i - j;
                max = Math.max(max, score);
            }
        }
        return max;
    }

    public static void main(String[] args) {
        int[] ints = {8, 1, 5, 2, 6};
        LeetCode1014 leetCode1014 = new LeetCode1014();
        System.out.println(leetCode1014.maxScoreSightseeingPair(ints));
    }
}
